
总⽽⾔之,如果有环,可能死锁,没
有环,⼀定没有死锁。
1.使⽤协议预防或避免死锁,确保系统不会进⼊死锁状态
2.可以允许系统进⼊死锁状态,然后检测&恢复
3. 忽略这个问题,当鸵⻦。(这个⽅法被⼤多数系统所采⽤,包
括Unix)
死锁恢复
1. 进程终⽌
1. 终⽌所有:但是代价也⼤
2.⼀次终⽌⼀个,直到取消死锁为⽌:具体终⽌哪个需要考虑很多
包括并不限于,进程的优先级,公平性,已经运⾏了多久,占⽤了多少资源,是交互性/
batch(批处理),dream5表示:OS太难了!
2.资源抢占
读者写者问题
e
「
“
“
[
i
θ
√
s
退
☆
i
”
ii
”
☆
⼦
的
⼀
“
≈
·
“
i
⼀
凹
w
⼀
」
e
…
、
∞
0
□
“
⼼
☆
我
←
的
“
诞
→
☆
“
oz
.
⽐
、
⼼
m
、
0
⽚
☆
㉘
0
□
:
∝
、
永
:
i
…
i
上
.
☆
i
*
-
lldl
作
%
0
8
*
Λ
Ʃ
m
~
⼀
☆
-
…
…
→
0
n
·
0
←
☆
-
☆
z
e
的
-
起⼝
☆
i
☆
i
∞
成
8
⼼匙